var express = require('express');
var router = express.Router();
var mysql = require('mysql');
var md5 = require('md5');

var config = require('../../config/config.js');
var db = mysql.createPool({ host: config.host, user: config.user, password: config.password, database: config. database})




// 标签管理
router.get('/', function(req, res, next) {
    var str = '';
    var sql = '';
    var author = req.session.user.username;
    var tags = {};

    // 判断是不是管理员，管理员显示全部信息，非管理员只显示自己的
    // if (req.session.user.isAdmin) {

    //     sql = 'SELECT * FROM zq_tag ORDER BY orderTag ASC';
    // } else {

    // }
    tags.pageSize = 2; //每页显示几条
    tags.skip = 2; //忽略前面几条
    tags.pages = 0; //总页数
    tags.page = req.query.page || 1; //当前页


    str = ' WHERE author="' + author + '" ';
    
    
    db.query('SELECT COUNT(id) AS count FROM zq_tag WHERE author="' + author + '"', function(err, countData) {
        if (err) {
            console.log(err);
            res.status(500).send('database error').end();
        } else {

            tags.count = countData[0].count;
            // 总页数
            tags.pages = Math.ceil(tags.count / tags.pageSize);
            tags.page = Math.min(tags.page, tags.pages); //当前页大于总页数时，去总页数的值
            tags.page = Math.max(tags.page, 1); //当前页小于1页数时，取1

            // 分页开始部分
            // 分页查询语句
            // SELECT *FROM zq_user WHERE username='username' LIMIT start, ned
            tags.skip = (tags.page - 1) * tags.pageSize;
            sql = 'SELECT * FROM zq_tag' + str + 'ORDER BY orderTag ASC LIMIT ' + tags.skip + ' , ' + tags.pageSize;

            db.query(sql, function(err, data) {
                console.log(data)

                if (err) {
                    console.log(err);
                    res.status(500).send('database error').end();
                } else {
                    res.render('admin/tag', {
                        userInfo: req.session.user,
                        title: "标签管理",
                        tags: data,
                        page: tags,
                        type:'tag'
                    });
                }
            })

        }
    })

})

// 标签添加
router.get('/add', function(req, res, next) {
    res.render('admin/tag_add', {
        userInfo: req.session.user,
        title: "添加新标签",
        messageText: '点击确定后，数据将不会保存哦',
        hrefUrl: '/admin/tag'
    });
})

// 保存操作
router.post('/add', function(req, res) {
    var tag = req.body.tag;
    var orderTag = req.body.order;
    var showTag = req.body.showTag;
    var author = req.session.user.username;
    console.log(tag, orderTag, showTag);
    if (tag == '') {
        res.render('admin/error', {
            userInfo: req.session.user,
            title: "添加新标签",
            message: '标签名称不能为空'
        });
        return
    }
    if (orderTag == '') {
        res.render('admin/error', {
            userInfo: req.session.user,
            title: "添加新标签",
            message: '标签显示顺序不能为空'
        });
        return
    }

    if (showTag == 'undefined') {
        showTag = '';
    }

    // 查询添加的标签是否存在
    db.query(`SELECT * FROM zq_tag WHERE tag = '${ tag }' AND author='${author}'`, function(err, data) {
        if (err) {
            console.log(err)
            res.status(500).send('database error').end();
        } else {

            if (data.length > 0) {
                res.render('admin/error', {
                    userInfo: req.session.user,
                    title: "添加新标签",
                    message: "该标签名称已经存在了"
                });
                return
            } else {
                // 新增标签
                db.query(`INSERT INTO zq_tag(tag,orderTag,showTag,author) VALUES('${tag}','${orderTag}','${showTag}','${author}')`, function(err, data) {
                    if (err) {
                        console.log(err)
                        res.status(500).send('database error').end();
                    } else {
                        // responseData.message = '新增标签成功';
                        // res.json(responseData);
                        res.render('admin/success', {
                            userInfo: req.session.user,
                            title: "添加新标签",
                            message: "新增标签成功",
                            url: '/admin/tag',
                            goOnUrl: '/admin/tag/add'
                        });
                    }
                })
            }
        }
    })

})

// 编辑显示数据
router.get('/edit', function(req, res) {
    var id = req.query.id || '';
    var author = req.session.user.username;
    // 查询是否存在该id
    db.query(`SELECT * FROM zq_tag WHERE id='${id}' AND author='${author}'`, function(err, data) {
        if (err) {
            console.log(err);
            res.status(500).send('database error').end();
        } else {
            if (data.length > 0) {

                res.render('admin/tag_edit', {
                    userInfo: req.session.user,
                    title: '编辑标签',
                    tag: data[0],
                    messageText: '点击确定后，数据将不会保存哦！',
                    hrefUrl: '/admin/tag'
                })
            } else {
                res.render('admin/error', {
                    userInfo: req.session.user,
                    title: "添加新标签",
                    message: "该标签名称不存在"
                })
            }
        }
    })
})

// 编辑标签，保存数据
router.post('/edit', function(req, res) {
    var id = req.query.id || '';
    var tag = req.body.tag;
    var orderTag = req.body.orderTag;
    var showTag = req.body.showTag;
    var author = req.session.user.username;

    // 查询是否存在这个id
    db.query(`SELECT id,tag FROM zq_tag WHERE id='${id}' AND author='${author}'`, function(err, data) {
        if (err) {

            console.log(err);
            res.status(500).send('database error');
        } else {

            if (data.length > 0) {

                // 判断当前修改的名字，数据库中是否存在
                db.query(`SELECT id,tag FROM zq_tag WHERE tag='${tag}' AND author='${author}'`, function(err, selectDate) {
                    console.log(selectDate.length);
                    if (err) {
                        console.log(err);
                        res.status(500).send('database error');
                    } else {
                        if (selectDate.length > 0) {
                            // 判断当前这个用户名是否修改，并且id相同
                            if (selectDate[0].id == id && selectDate[0].tag == tag) {
                                // 进行修改
                                db.query(`UPDATE zq_tag SET tag='${tag}',orderTag='${orderTag}',showTag='${showTag}' WHERE id='${id}'`, function(err, upData) {
                                    if (err) {
                                        console.log(err);
                                        res.status(500).send('database error').end();
                                    } else {
                                        res.render('admin/success', {
                                            userInfo: req.session.user,
                                            message: '修改成功',
                                            url: '/admin/tag'
                                        })
                                    }
                                })
                            } else {
                                console.log(2)
                                res.render('admin/error', {
                                    userInfo: req.session.user,
                                    message: '修改失败，修改的标签名已经存在'
                                })
                            }
                        } else {
                            // 进行修改
                            db.query(`UPDATE zq_tag SET tag='${tag}',orderTag='${orderTag}',showTag='${showTag}' WHERE id='${id}'`, function(err, upData) {
                                if (err) {
                                    console.log(err);
                                    res.status(500).send('database error').end();
                                } else {
                                    res.render('admin/success', {
                                        userInfo: req.session.user,
                                        message: '修改成功',
                                        url: '/admin/tag'
                                    })
                                }
                            })
                        }
                    }

                })

            } else {
                res.render('admin/error', {
                    userInfo: req.session.user,
                    message: '修改失败，修改的标签不存在',
                    url: '/admin/tag'
                })
            }
        }
    })


})


// 标签的删除
router.get('/del', function(req, res) {
    var id = req.query.id;
    db.query(`SELECT id FROM zq_tag WHERE id='${id}'`, function(err, data) {
        if (err) {
            console.log(err)
            res.status(500).send('database error').end();
        } else {
            if (data.length > 0) {
                db.query(`DELETE FROM zq_tag WHERE id='${id}'`, function(err, delData) {
                    if (err) {
                        console.log(err)
                        res.status(500).send('database error').end();
                    } else {
                        res.render('admin/success', {
                            userInfo: req.session.user,
                            message: '删除成功',
                            url: '/admin/tag'
                        })
                    }
                })
            } else {
                res.render('admin/error', {
                    userInfo: req.session.user,
                    message: '对不起，该标签不存在',
                    url: '/admin/tag'
                });
            }
        }
    })

})



module.exports = router
